home *** CD-ROM | disk | FTP | other *** search
- Attribute VB_Name = "mdlSayWords"
- Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
- Private sndString
-
- Sub ResSound(SoundID)
- sndPlaySound StrConv(LoadResData(SoundID + 101, "CUSTOM"), vbUnicode), 7
- End Sub
-
- Sub SayNumber(Number As Double, Optional rMode As rModes = Normal)
- Dim Word As String, Ret As Integer
- sndString = ""
- Word = Num2Word(Number, rMode)
- If Word = "" Or Word = "Error" Then Exit Sub
- Do While Word <> ""
- Word = PlayNextWord(Word)
- Loop
- For i = 1 To Len(sndString)
- Do
- Ret = sndPlaySound(StrConv(LoadResData(Asc(Mid(sndString, i, 1)) + 101, "CUSTOM"), vbUnicode), 6)
- Loop While Ret = 33
- Next i
- End Sub
-
- Function PlayNextWord(Word As String) As String
- Restart:
- If Left(Word, 1) = " " Or Left(Word, 1) = "," Or Left(Word, 1) = "-" Then
- Word = Mid(Word, 2)
- GoTo Restart
- End If
- Dim NewWord As String
- Do While Left(Word, 1) <> " " And Left(Word, 1) <> "," And Left(Word, 1) <> "-" And Word <> ""
- NewWord = NewWord & Left(Word, 1)
- Word = Mid(Word, 2)
- Loop
- PlayWord NewWord
- PlayNextWord = Word
- End Function
-
- Sub PlayWord(Word As String)
- Word = LCase(Word)
- Select Case Word
- Case "one": AddToString 0
- Case "two": AddToString 1
- Case "three": AddToString 2
- Case "four": AddToString 3
- Case "five": AddToString 4
- Case "six": AddToString 5
- Case "seven": AddToString 6
- Case "eight": AddToString 7
- Case "nine": AddToString 8
- Case "ten": AddToString 9
- Case "eleven": AddToString 10
- Case "twelve": AddToString 11
- Case "thirteen": AddToString 12
- Case "fourteen": AddToString 13
- Case "fifteen": AddToString 14
- Case "sixteen": AddToString 15
- Case "seventeen": AddToString 16
- Case "eighteen": AddToString 17
- Case "nineteen": AddToString 18
- Case "twenty": AddToString 19
- Case "thirty": AddToString 20
- Case "forty": AddToString 21
- Case "fifty": AddToString 22
- Case "sixty": AddToString 23
- Case "seventy": AddToString 24
- Case "eighty": AddToString 25
- Case "ninety": AddToString 26
- Case "hundred": AddToString 27
- Case "thousand": AddToString 28
- Case "million": AddToString 29
- Case "first": AddToString 30
- Case "second": AddToString 31
- Case "third": AddToString 32
- Case "forth": AddToString 33
- Case "fifth": AddToString 34
- Case "sixth": AddToString 35
- Case "seventh": AddToString 36
- Case "eighth": AddToString 37
- Case "nineth": AddToString 38
- Case "tenth": AddToString 39
- Case "eleventh": AddToString 40
- Case "twelfth": AddToString 41
- Case "thirteenth": AddToString 42
- Case "fourteenth": AddToString 43
- Case "fifteenth": AddToString 44
- Case "sixteenth": AddToString 45
- Case "seventeenth": AddToString 46
- Case "eighteenth": AddToString 47
- Case "nineteenth": AddToString 48
- Case "twentieth": AddToString 49
- Case "thirtieth": AddToString 50
- Case "fortieth": AddToString 51
- Case "fiftieth": AddToString 52
- Case "sixtieth": AddToString 53
- Case "seventieth": AddToString 54
- Case "eightieth": AddToString 55
- Case "ninetieth": AddToString 56
- Case "hundredth": AddToString 57
- Case "thousandth": AddToString 58
- Case "millionth": AddToString 59
- Case "and": AddToString 60
- Case "point": AddToString 61
- Case "negative": AddToString 62
- Case "a": AddToString 63
- Case "an": AddToString 64
- Case "half": AddToString 65
- Case "quarter": AddToString 66
- Case "quarters": AddToString 67
- Case "fifths": AddToString 68
- Case "eighths": AddToString 69
- End Select
- End Sub
-
- Sub AddToString(Number As Byte)
- sndString = sndString & Chr(Number)
- End Sub
-